home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Various / DevDisk 65 (1989)(DevWare PD).zip / DevDisk 65 (1989)(DevWare PD).adf / prosuite / colordat.c < prev    next >
C/C++ Source or Header  |  1990-07-11  |  7KB  |  404 lines

  1.  
  2. /* *** colordat.c ***********************************************************
  3.  *
  4.  * ColorWindow Routine  --  The ColorWindow Data 
  5.  *     from Book 1 of the Amiga Programmers' Suite by RJ Mical
  6.  *
  7.  * Copyright (C) 1986, 1987, Robert J. Mical
  8.  * All Rights Reserved.
  9.  *
  10.  * Created for Amiga developers.
  11.  * Any or all of this code can be used in any program as long as this
  12.  * entire copyright notice is retained, ok?  Thanks.
  13.  *
  14.  * The Amiga Programmer's Suite Book 1 is copyrighted but freely distributable.
  15.  * All copyright notices and all file headers must be retained intact.
  16.  * The Amiga Programmer's Suite Book 1 may be compiled and assembled, and the 
  17.  * resultant object code may be included in any software product.  However, no 
  18.  * portion of the source listings or documentation of the Amiga Programmer's 
  19.  * Suite Book 1 may be distributed or sold for profit or in a for-profit 
  20.  * product without the written authorization of the author, RJ Mical.
  21.  * 
  22.  * HISTORY      NAME            DESCRIPTION
  23.  * -----------  --------------  --------------------------------------------
  24.  * 20 Oct 87    - RJ            Make the window draggable
  25.  * 3 Jan 87     RJ >:-{)*       Clean-up for release      
  26.  * 27 Feb 86    =RJ Mical=      Modified these routines for Zaphod
  27.  * January 86   =RJ=            Modified the originals for Mandelbrot
  28.  * Late 85      =RJ=            Created the color window for Graphicraft
  29.  *
  30.  * *********************************************************************** */
  31.  
  32.  
  33. #include "color.h"
  34.  
  35.  
  36.  
  37. struct TextAttr SafeFont =
  38.         {
  39.         (UBYTE *)"topaz.font",
  40.         TOPAZ_EIGHTY,
  41.         0,
  42.         FS_NORMAL
  43.         };
  44.  
  45.  
  46. /* If this image data isn't in chip memory, it will have to be moved there */
  47. USHORT RGBData[RGBHSL_SIZE] =
  48.     {
  49.     0xFC00,
  50.     0x6600,
  51.     0x6600,
  52.     0x7800,
  53.     0x6C00,
  54.     0x6600,
  55.     0xE300,
  56.     0x0000,
  57.     0x0000,
  58.     0x0000,
  59.     0x0000,
  60.     0x3C00,
  61.     0x6600,
  62.     0xC000,
  63.     0xCE00,
  64.     0xC600,
  65.     0x6600,
  66.     0x3E00,
  67.     0x0000,
  68.     0x0000,
  69.     0x0000,
  70.     0x0000,
  71.     0xFC00,
  72.     0x6600,
  73.     0x6600,
  74.     0x7C00,
  75.     0x6600,
  76.     0x6600,
  77.     0xFC00,
  78.     };
  79.  
  80. USHORT HSLData[RGBHSL_SIZE] =
  81.     {
  82.     0xC600,
  83.     0xC600,
  84.     0xC600,
  85.     0xFE00,
  86.     0xC600,
  87.     0xC600,
  88.     0xC600,
  89.     0x0000,
  90.     0x0000,
  91.     0x0000,
  92.     0x0000,
  93.     0x7C00,
  94.     0xC600,
  95.     0xC000,
  96.     0xFE00,
  97.     0x0600,
  98.     0xC600,
  99.     0x7C00,
  100.     0x0000,
  101.     0x0000,
  102.     0x0000,
  103.     0x0000,
  104.     0xF000,
  105.     0x6000,
  106.     0x6000,
  107.     0x6000,
  108.     0x6200,
  109.     0x6200,
  110.     0xFE00,
  111.     };
  112.  
  113.  
  114.  
  115. struct Image ColorRGBImage =
  116.     {
  117.     3, 1,
  118.     8, 
  119.     29,
  120.     1,
  121.     &RGBData[0],
  122.     0x1, 0x0,
  123.     NULL,
  124.     };
  125.  
  126.  
  127. struct Image ColorHSLImage =
  128.     {
  129.     3, 1,
  130.     8, 
  131.     29,
  132.     1,
  133.     &HSLData[0],
  134.     0x1, 0x0,
  135.     NULL,
  136.     };
  137.  
  138.  
  139. SHORT ClusterBorderVectors[] =
  140.     {
  141.     -1, -1,
  142.     -1, COLOR_CLUSTER_HEIGHT,
  143.     COLOR_CLUSTER_WIDTH, COLOR_CLUSTER_HEIGHT,
  144.     COLOR_CLUSTER_WIDTH, -1,
  145.     -1, -1,
  146.     };
  147.  
  148.  
  149. struct Border ColorClusterBorder =
  150.     {
  151.     0, 0, 
  152.     1, 0,
  153.     JAM1,
  154.     5,
  155.     &ClusterBorderVectors[0],
  156.     NULL,
  157.     };
  158.  
  159. struct IntuiText ColorClusterText[4] =
  160.     {
  161.     /* "COPY" */
  162.         {
  163.         1, 0,
  164.         JAM2,
  165.         5 + CHARACTER_WIDTH + (NEW_EXTRALEFT >> 1), 1, 
  166.         &SafeFont,
  167.         (UBYTE *)"COPY",
  168.         NULL,
  169.         },
  170.  
  171.     /* "RANGE" */
  172.         {
  173.         1, 0, 
  174.         JAM2,
  175.         5 + (CHARACTER_WIDTH >> 1) + (NEW_EXTRALEFT >> 1), 1, 
  176.         &SafeFont,
  177.         (UBYTE *)"RANGE",
  178.         NULL,
  179.         },
  180.  
  181.     /* "OK" */
  182.         {
  183.         1, 0, 
  184.         JAM2,
  185.         5 + (CHARACTER_WIDTH << 1) + (NEW_EXTRALEFT >> 1), 1, 
  186.         &SafeFont,
  187.         (UBYTE *)"OK",
  188.         NULL,
  189.         },
  190.  
  191.     /* "CANCEL" */
  192.         {
  193.         1, 0, 
  194.         JAM2,
  195.         5 + (NEW_EXTRALEFT >> 1), 1, 
  196.         &SafeFont,
  197.         (UBYTE *)"CANCEL",
  198.         NULL,
  199.         },
  200.  
  201.     };
  202.  
  203.  
  204.  
  205. /* ======================================================================== */
  206. /* ======================================================================== */
  207. /* ======================================================================== */
  208.  
  209. struct Image ColorPropsImages[3];
  210.  
  211.  
  212. struct PropInfo ColorPropsInfos[3] = 
  213.     {
  214.         {
  215.         /* COLOR_GREEN */
  216.         AUTOKNOB | FREEHORIZ,
  217.         0,
  218.         0,
  219.         COLOR_KNOB_BODY,
  220.         0,
  221.         0, 0, 0, 0, 0, 0,
  222.         },
  223.  
  224.         {
  225.         /* COLOR_RED */
  226.         AUTOKNOB | FREEHORIZ,
  227.         0,
  228.         0,
  229.         COLOR_KNOB_BODY,
  230.         0,
  231.         0, 0, 0, 0, 0, 0,
  232.         },
  233.  
  234.         {
  235.         /* COLOR_BLUE */
  236.         AUTOKNOB | FREEHORIZ,
  237.         0,
  238.         0,
  239.         COLOR_KNOB_BODY,
  240.         0,
  241.         0, 0, 0, 0, 0, 0,
  242.         },
  243.  
  244.     };
  245.  
  246.  
  247. struct Gadget ColorTemplateGadgets[COLOR_GADGETS_COUNT] =
  248.     {
  249.         {
  250.         /* COLOR_COPY */
  251.         NULL,
  252.         COLOR_CLUSTER_LEFT,
  253.         COLOR_CLUSTER_TOP + (00 * (COLOR_CLUSTER_HEIGHT + 3)),
  254.         COLOR_CLUSTER_WIDTH,
  255.         COLOR_CLUSTER_HEIGHT,
  256.         GADGHCOMP,
  257.         RELVERIFY,
  258.         BOOLGADGET,
  259.         (APTR)&ColorClusterBorder,
  260.         NULL,
  261.         &ColorClusterText[00],
  262.         NULL,
  263.         NULL,
  264.         COLOR_COPY,
  265.         NULL,
  266.         },
  267.  
  268.         {
  269.         /* COLOR_RANGE */
  270.         &ColorTemplateGadgets[COLOR_COPY],
  271.         COLOR_CLUSTER_LEFT,
  272.         COLOR_CLUSTER_TOP + (01 * (COLOR_CLUSTER_HEIGHT + 3)),
  273.         COLOR_CLUSTER_WIDTH,
  274.         COLOR_CLUSTER_HEIGHT,
  275.         GADGHCOMP,
  276.         RELVERIFY,
  277.         BOOLGADGET,
  278.         (APTR)&ColorClusterBorder,
  279.         NULL,
  280.         &ColorClusterText[01],
  281.         NULL,
  282.         NULL,
  283.         COLOR_RANGE,
  284.         NULL,
  285.         },
  286.  
  287.         {
  288.         /* COLOR_OK */
  289.         &ColorTemplateGadgets[COLOR_RANGE],
  290.         COLOR_CLUSTER_LEFT,
  291.         COLOR_CLUSTER_TOP + (02 * (COLOR_CLUSTER_HEIGHT + 3)),
  292.         COLOR_CLUSTER_WIDTH,
  293.         COLOR_CLUSTER_HEIGHT,
  294.         GADGHCOMP,
  295.         RELVERIFY,
  296.         BOOLGADGET,
  297.         (APTR)&ColorClusterBorder,
  298.         NULL,
  299.         &ColorClusterText[02],
  300.         NULL,
  301.         NULL,
  302.         COLOR_OK,
  303.         NULL,
  304.         },
  305.  
  306.         {
  307.         /* COLOR_CANCEL */
  308.         &ColorTemplateGadgets[COLOR_OK],
  309.         COLOR_CLUSTER_LEFT,
  310.         COLOR_CLUSTER_TOP + (03 * (COLOR_CLUSTER_HEIGHT + 3)),
  311.         COLOR_CLUSTER_WIDTH,
  312.         COLOR_CLUSTER_HEIGHT,
  313.         GADGHCOMP,
  314.         RELVERIFY,
  315.         BOOLGADGET,
  316.         (APTR)&ColorClusterBorder,
  317.         NULL,
  318.         &ColorClusterText[03],
  319.         NULL,
  320.         NULL,
  321.         COLOR_CANCEL,
  322.         NULL,
  323.         },
  324.  
  325.         {
  326.         /* COLOR_GREEN */
  327.         &ColorTemplateGadgets[COLOR_CANCEL],
  328.         COLOR_PROP_LEFT,
  329.         COLOR_PROP_TOP + (01 * (COLOR_PROP_HEIGHT + 1)),
  330.         COLOR_PROP_WIDTH,
  331.         COLOR_PROP_HEIGHT,
  332.         GADGHCOMP | GADGIMAGE,
  333.         FOLLOWMOUSE,
  334.         PROPGADGET,
  335.         (APTR)&ColorPropsImages[01],
  336.         NULL,
  337.         NULL,
  338.         NULL,
  339.         (APTR)&ColorPropsInfos[01],
  340.         COLOR_GREEN,
  341.         NULL,
  342.         },
  343.  
  344.         {
  345.         /* COLOR_RED */
  346.         &ColorTemplateGadgets[COLOR_GREEN],
  347.         COLOR_PROP_LEFT,
  348.         COLOR_PROP_TOP + (00 * (COLOR_PROP_HEIGHT + 1)),
  349.         COLOR_PROP_WIDTH,
  350.         COLOR_PROP_HEIGHT,
  351.         GADGHCOMP | GADGIMAGE,
  352.         FOLLOWMOUSE,
  353.         PROPGADGET,
  354.         (APTR)&ColorPropsImages[00],
  355.         NULL,
  356.         NULL,
  357.         NULL,
  358.         (APTR)&ColorPropsInfos[00],
  359.         COLOR_RED,
  360.         NULL,
  361.         },
  362.  
  363.         {
  364.         /* COLOR_BLUE */
  365.         &ColorTemplateGadgets[COLOR_RED],
  366.         COLOR_PROP_LEFT,
  367.         COLOR_PROP_TOP + (02 * (COLOR_PROP_HEIGHT + 1)),
  368.         COLOR_PROP_WIDTH,
  369.         COLOR_PROP_HEIGHT,
  370.         GADGHCOMP | GADGIMAGE,
  371.         FOLLOWMOUSE,
  372.         PROPGADGET,
  373.         (APTR)&ColorPropsImages[02],
  374.         NULL,
  375.         NULL,
  376.         NULL,
  377.         (APTR)&ColorPropsInfos[02],
  378.         COLOR_BLUE,
  379.         NULL,
  380.         },
  381.  
  382.         {
  383.         /* COLOR_HSL_RGB */
  384.         &ColorTemplateGadgets[COLOR_BLUE],
  385.         COLOR_HSL_LEFT,
  386.         COLOR_HSL_TOP,
  387.         CHARACTER_WIDTH + 5,
  388.         COLOR_BOX_BOTTOM - COLOR_BOX_TOP + 1,
  389.         GADGHIMAGE | GADGIMAGE,
  390.         TOGGLESELECT | GADGIMMEDIATE,
  391.         BOOLGADGET,
  392.         (APTR)&ColorRGBImage,
  393.         (APTR)&ColorHSLImage,
  394.         NULL,
  395.         NULL,
  396.         NULL,
  397.         COLOR_HSL_RGB,
  398.         NULL,
  399.         },
  400.     };
  401.  
  402.  
  403.  
  404.